package ar.uba.fi.tecnicas.vista;

import java.awt.Point;

import javax.swing.JLabel;

import ar.uba.fi.tecnicas.vista.PanelFabrica.IFabricaObserver;

public class PanelConectar extends PanelOperacion implements IFabricaObserver
{
	protected static final long serialVersionUID = 0;

	private JLabel lblPosicionOrigen;
	private Point posicionOrigen;
	
	private JLabel lblPosicionDestino;
	private Point posicionDestino;

	public PanelConectar(PanelControles panelControles)
	{
		super(panelControles);
	}
	
	@Override
	protected void asignarEventos() 
	{
		panelControles.getFrameJuego().agregarListenerPanelFabrica(this);
	}

	@Override
	protected void inicializarComponentes() 
	{
		lblPosicionOrigen = new JLabel("Posicion Origen");
		lblPosicionDestino = new JLabel("Posicion Destino ");
		
		this.componentes.add(lblPosicionOrigen);
		this.componentes.add(lblPosicionDestino);
	}

	@Override
	protected void realizarOperacion() 
	{
		this.panelControles.getFrameJuego().conectarMaquinas(this.posicionOrigen, this.posicionDestino);
	}

	@Override
	protected void terminarOperacion() 
	{
		panelControles.getFrameJuego().quitarListenerPanelFabrica(this);
	}

	public void posicionSeleccionada(Point posicion)
	{
		if(this.posicionOrigen == null)
		{
			this.posicionOrigen = posicion;
			this.lblPosicionOrigen.setText("(" + posicion.x + ", " + posicion.y + ")");
		}
		else
		{
			this.posicionDestino = posicion;
			this.lblPosicionDestino.setText("(" + posicion.x + ", " + posicion.y + ")");
		}
	}
}
